// my/pages/xtxFinished/xtxFinished.js
var http = require('../../../utils/https');
Page({
  data: {
    orderInfo: null,
    orderId: null,
    allOrderIemDetails:[],
    currentOrderData:{},
    couponList:[]
  },

  onLoad(options) {
    // 读取本地存储的对象
    this.setData({
      currentOrderData : wx.getStorageSync('currentOrderData')
    })
    console.log('currentOrderData',this.data.currentOrderData);
    // 读取后可删除存储（避免占用空间）
    wx.removeStorageSync('currentOrderData');
    // 加载优惠券
    this.loadCoupon();
    // 接收传递过来的订单ID
    if (options.orderId) {
      this.setData({
        orderId: options.orderId
      });
      console.log('接收到的订单ID:', options.orderId);
      // 加载订单详情
      this.loadOrderDetails(options.orderId);
    }
  },

  onUnload() {
    // 页面卸载时清除定时器
    if (this.data.countdownTimer) {
      clearInterval(this.data.countdownTimer);
    }
  },
  // 格式化价格，保留两位小数
  formatPrice(price) {
    return Number(price).toFixed(2);
  },

  // 加载优惠券并筛选匹配当前订单的券
  loadCoupon() {
    http.GET('/coupon/coupons/list', null, (res) => {
      console.log('加载优惠券成功:', res);
      if (res.code === 200) {
        const couponList = res.rows;
        // 获取当前订单数据（假设从本地存储或页面数据中获取）
        const currentOrderData = this.data.currentOrderData;
        
        if (!currentOrderData || !currentOrderData.totalAmount) {
          console.log('订单数据不存在或金额为空');
          this.setData({ couponList });
          return;
        }

        // 1. 转换订单金额为数字（原数据是字符串，如 "102.53"）
        const orderTotal = Number(currentOrderData.totalAmount);

        // 2. 筛选符合条件的优惠券：订单金额 >= 优惠券门槛（condition）
        const eligibleCoupons = couponList.filter(coupon => {
          // 注意：coupon.condition 可能是数字或字符串，需统一转换
          return orderTotal >= Number(coupon.condition);
        });

        // 3. 从符合条件的优惠券中选择最优的（例如：优惠金额最大的）
        let selectedCoupon = null;
        if (eligibleCoupons.length > 0) {
          // 按优惠金额降序排序，取第一个
          selectedCoupon = eligibleCoupons.sort((a, b) => b.amount - a.amount)[0];
          
          // 4. 在订单对象中添加优惠券金额字段（与选中的优惠券amount一致）
          currentOrderData.couponAmount = Number(selectedCoupon.amount).toFixed(2);
          // 也可以直接添加 amount 字段（如果业务明确需要）
          // currentOrderData.amount = selectedCoupon.amount;

          this.setData({
              currentOrderData:currentOrderData
          });
        }

        // 5. 保存优惠券列表（可选：只显示符合条件的，或全部显示并标记可用）
        this.setData({
          couponList: couponList.map(coupon => ({
            ...coupon,
            // 标记优惠券是否可用（方便页面渲染时高亮）
            isEligible: orderTotal >= Number(coupon.condition)
          })),
          selectedCoupon: selectedCoupon || null // 记录选中的优惠券
        });

        console.log('筛选后符合条件的优惠券:', eligibleCoupons);
        console.log('选中的优惠券:', selectedCoupon);
        console.log('更新后的订单数据:', currentOrderData);
      }
    }, (err) => {
      console.error('加载优惠券失败:', err);
    });
  },

  // 加载订单详情
  loadOrderDetails(orderId) {
    // 这里可以调用接口获取订单详情
    console.log('加载订单详情:', orderId);

    // GET 请求
    http.GET(`/order/item/list`, { orderId: orderId }, (res) => {
      console.log('加载订单详情成功:', res);
      // 格式化价格为两位小数
      const formattedList = res.rows.map(item => ({
        ...item,
        // 四舍五入保留两位小数
        subtotal: Number(item.subtotal).toFixed(2),
        unitPrice:Number(item.unitPrice).toFixed(2)
      }));
      this.setData({
        allOrderIemDetails:formattedList
      })
      console.log('allOrderIemDetails',this.data.allOrderIemDetails);
    }, (err) => {
      console.error('加载订单详情失败:', err);
    });

    // 模拟加载订单数据
    this.setData({
      orderInfo: {
        orderId: orderId,
        product: {
          name: '甜玉米',
          image: '/images/xtxFruit.png',
          price: '39.00',
          count: 1,
          spec: '900g'
        },
        totalPrice: '39.00',
        deliveryFee: '0.00',
        couponDiscount: '15.00',
        orderTime: '2022/05/20 10:00:00',
        paymentMethod: '微信支付'
      }
    });
  },

  // 返回上一页
  navigateBack() {
    wx.navigateBack({
      delta: 1,
      fail: () => {
        // 如果返回失败，则跳转到my页面
        wx.switchTab({
          url: '/pages/my/my'
        });
      }
    });
  },

  // 申请退款
  applyRefund() {
    wx.showModal({
      title: '申请退款',
      content: '确定要申请退款吗？',
      success: (res) => {
        if (res.confirm) {
          // 跳转到退款页面
          wx.navigateTo({
            url: '/my/pages/xtxRefund/xtxRefund?orderId=' + this.data.orderId,
            success: () => {
              console.log('跳转到退款页面成功，订单ID:', this.data.orderId);
            },
            fail: (err) => {
              console.error('跳转到退款页面失败:', err);
              wx.showToast({
                title: '页面跳转失败',
                icon: 'none'
              });
            }
          });
        }
      }
    });
  },

  // 再来一单
  repeatOrder() {
    wx.showToast({
      title: '再来一单功能待完善',
      icon: 'none'
    });
  }
});